package com.ushine.web.component.exception;

/**
 * @Author: yls
 * @Date: 2022/03/03 09:59
 * @Description: service层抛出的异常
 * @Version 1.0
 */
public enum ServiceExceptionEnum implements BaseErrorInfoInterface {
    /**
     * 数据操作错误定义
     * 代码段：2000~2999
     */
    RSA_FILE_CREATE_ERROR(2000, "秘钥文件创建失败！"),
    ASYNC_TASK_ERROR(2001, "异步任务执行异常！"),
    DATA_PERMISSION_INSERT_ERROR(2003, "数据权限：添加数据时，字段过滤异常！"),
    DATA_PERMISSION_UPDATE_ERROR(2003, "数据权限：更新数据时，字段过滤异常！"),

    SALARY_CALCULATE_NULL_POINTER(2005, "薪资计算提供的对象为空，空指针异常，计算异常！"),
    SALARY_CALCULATE_NOT_SUPPORT_TYPE(2005, "薪资计算提供的员工类型不支持，计算异常！"),
    SALARY_CALCULATE_CHAIN_ERROR(2005, "薪资计算初始化责任链异常！"),
    SALARY_CALCULATE_ERROR(2005, "薪资计算初流程异常！"),
    /**
     * 定时器异常
     */
    QUARTZ_CRON_ERROR(2006, "cron表达式不正确！"),
    QUARTZ_TASK_NOT_EXIST(2006, "定时器任务不存在！"),
    SOURCE_PASSWORD_ERROR(2996, "原密码错误！"),

    REPEAT_SUBMISSION(2997, "你的操作过于频繁，请勿重复提交请求！"),
    NOT_EXIST_DATA(2997, "数据不存在！"),
    EXIST_SAME_NAME_DATA(2997, "存在同名数据，操作失败！"),
    EXIST_LINKED_DATA(2998, "存在关联数据，无法进行删除！"),
    NOT_SUPPORT_TYPE(2999, "类型错误，不支持该类型参数");


    /**
     * 错误信息
     */
    private String errorMsg;
    /**
     * 错误代码
     */
    private Integer errorCode;


    ServiceExceptionEnum(Integer errorCode, String errorMsg) {
        this.errorCode = errorCode;
        this.errorMsg = errorMsg;
    }

    @Override
    public Integer getErrorCode() {
        return errorCode;
    }

    @Override
    public String getErrorMsg() {
        return errorMsg;
    }
}
